// Copyright (C) 2024 wlly-lzh
// Created by wlly-lzh on 24-3-23
// Linked List Stack 基于链表的栈

#ifndef _LINSTACK_H
#define _LINSTACK_H

#include <stdbool.h>

typedef struct LLinStack LLinStack;
struct LLinStack { };

LLinStack * Create_LLinStack();

void Clear_LLinStack(LLinStack *Stack);

void Destroy_LLinStack(LLinStack **Stack);

bool Push_LLinStack(LLinStack *Stack, void *Data);

bool Pop_LLinStack(LLinStack *Stack, void **Data);

bool GetTop_LLinStack(const LLinStack *Stack, void **Data);

bool IsEmpty_LLinStack(const LLinStack *Stack);

int Size_LLinStack(const LLinStack *Stack);

#endif // _LINSTACK_H
